package org.bonorsoft.modules.dingding.service;

import org.bonorsoft.modules.dingding.entity.SysRole;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Set;

/**
 * @Description: 角色
 * @Author: WilliamYe
 * @Date:   2020-11-13
 * @Version: V1.0
 */
public interface ISysRoleService extends IService<SysRole> {

    void addRole(List<Integer> labelIdList);

    void deleteRole(List<Integer> labelIdList);

    /**
     * 校验角色是否允许操作
     *
     * @param role 角色信息
     */
    void checkRoleAllowed(SysRole role);

    /**
     * 根据条件校验角色名称是否唯一
     *
     * @param role 角色信息
     * @param condition 条件
     * @return 结果
     */
    public String checkRoleUnique(String field, SysRole role, String condition);

    /**
     * 修改保存角色信息
     *
     * @param role 角色信息
     * @param req
     * @return 结果
     */
    public int updateRole(SysRole role, HttpServletRequest req);

    /**
     * 根据用户ID查询角色
     *
     * @param userid 用户ID
     * @return 权限列表
     */
    public Set<String> selectRoleKeys(String userid);

    /**
     * 查询未删除的用户
     * @param roleId
     * @return
     */
    SysRole selectRoleById(Integer roleId);

    /**
     * 查看某用户的角色的数据权限
     * @return
     * @param userid
     */
    List<SysRole> getRolesByUserId(String userid);

    /**
     * 修改数据权限信息
     *
     * @param role 角色信息
     * @param req
     * @return 结果
     */
    public int authDataScope(SysRole role, HttpServletRequest req);
}
